package io.renren.system.sys.service;

import io.renren.common.service.BaseService;
import io.renren.system.security.user.UserDetail;
import io.renren.system.sys.dto.SysMenuDTO;
import io.renren.system.sys.entity.SysMenuEntity;

import java.util.List;

/**
 * 系统设置-菜单管理
 */
public interface SysMenuService extends BaseService<SysMenuEntity> {

    /**
     * 根据用户信息获取用户菜单列表
     *
     * @param user
     * @param type
     * @return
     */
    List<SysMenuDTO> getUserMenuList(UserDetail user, Integer type);

    /**
     * 获取全部菜单列表
     *
     * @param type
     * @return
     */
    List<SysMenuDTO> getAllMenuList(Integer type);

    /**
     * 根据父菜单查询子菜单
     *
     * @param pid
     * @return
     */
    List<SysMenuDTO> getListPid(Long pid);

    /**
     * 根据主键获取菜单详细信息
     *
     * @param id
     * @return
     */
    SysMenuDTO get(Long id);

    /**
     * 新增保存菜单信息
     *
     * @param dto
     */
    void save(SysMenuDTO dto);

    /**
     * 修改保存菜单信息
     *
     * @param dto
     */
    void update(SysMenuDTO dto);

    /**
     * 根据主键删除菜单信息
     *
     * @param id
     */
    void delete(Long id);
}
